// 引入axios以及element ui中的loading和message组件
import axios from 'axios'
import { Message } from 'element-ui'
// http请求拦截器,请求时
const baseUrl=process.env.VUE_APP_API_ROOT
const instance=axios.create({
    baseURL:baseUrl,
    timeout:50000,
})
instance.interceptors.request.use(config=>{
        const token = localStorage.getItem("token")
        if(token){
            config.headers.token=token
        }
        return config
    },
    error=>{
        Message({
            message:'请求错误',
            type:'error'
        })
    })

instance.interceptors.response.use(response=>{
    console.log(response)
    if(response.status===200){
        if(response.data.status===200){
            return response.data
        }else{
            return Promise.reject(response.data)
        }
    }
},error=>{
    let errMsg=''
    if(error.response){
        switch (error.response.status) {
            case 400:
                errMsg="请求错误"
                break
        }
    }


})


export default instance
// // 带cookie请求
// axios.defaults.withCredentials = true;
// axios.interceptors.request.use(      //这里是发起ajax请求时拦截的处理
//     config => {
//         // 请求时的处理
//         let token = localStorage.getItem("mtoken");
//         if (token) {
//             token = crypto.getAES(token);
//             // 判断是否存在token，如果存在的话，则每个http header都加上token
//             if (router.history.current.name !== "login") {
//                 config.headers.token = token;
//             }
//         }
//         return config;
//     },
//     error => {
//         // 异常时的处理
//         message.error({
//             message: "加载超时"
//         });
//         return Promise.reject(error);
//     }
// );
//
// // http响应拦截器，请求后,必须先关闭loading
// axios.interceptors.response.use(     //这里是获得后台回传数据时拦截的处理
//     data => {
//         //  请求后成功的处理
//         // 响应成功
//         Toast.hide();
//         if (data.data != null && typeof data.data === "object") {
//             if (data.data.status === 200) {
//                 return data.data;
//             } else if (data.data.status === 205) {
//                 router.replace({
//                     path: "/youhua"
//                 });
//                 let msg = "平台优化中";
//                 return Promise.reject(msg);
//             } else if (data.data.status === 201 || data.data.status === 202) {
//                 router.replace({
//                     path: "/login"
//                 });
//                 localStorage.clear();
//                 store.dispatch("resetState");
//                 return Promise.reject(data.data.msg);
//             } else {
//                 return Promise.reject(data.data.msg);
//             }
//         } else {
//             return Promise.reject("请求错误");
//         }
//     },
//     error => {
//         // 请求后异常的处理
//         let errMsg = "";
//         Toast.hide();
//         if (error.response) {
//             switch (error.response.status) {
//                 case 400:
//                     errMsg = "请求错误";
//                     break;
//
//                 case 401:
//                     errMsg = "未授权，请登录";
//                     router.replace({
//                         path: "/"
//                     });
//                     break;
//
//                 case 403:
//                     errMsg = "拒绝访问";
//                     break;
//
//                 case 404:
//                     errMsg = `请求地址出错: ${error.response.config.url}`;
//                     break;
//
//                 case 408:
//                     errMsg = "请求超时";
//                     break;
//
//                 case 500:
//                     errMsg = "服务器内部发生错误";
//                     break;
//
//                 case 501:
//                     errMsg = "服务未实现";
//                     break;
//
//                 case 502:
//                     errMsg = "网关错误";
//                     break;
//
//                 case 503:
//                     errMsg = "服务不可用";
//                     break;
//
//                 case 504:
//                     errMsg = "网关超时";
//                     break;
//
//                 case 505:
//                     errMsg = "HTTP版本不受支持";
//                     break;
//                 default:
//             }
//         } else {
//             errMsg = "Network Error";
//         }
//         return Promise.reject(errMsg);
//     }
// );
// export default {
//     post(url, data, noShowLoading, loadingMsg) {
//         if (!noShowLoading) {
//             if (loadingMsg) {
//                 Toast.loading(loadingMsg);
//             } else {
//                 Toast.loading("测试请求中...");
//             }
//         }
//         let newData = qs.stringify(data);
//         return axios.post(url, newData);
//     },
//     upload(url, data, noShowLoading, loadingMsg) {
//         if (!noShowLoading) {
//             if (loadingMsg) {
//                 Toast.loading(loadingMsg);
//             } else {
//                 Toast.loading("测试请求中...");
//             }
//         }
//         return axios.post(url, data);
//     },
//     // get方法
//     get(url, data, noShowLoading, loadingMsg) {
//         if (!noShowLoading) {
//             if (loadingMsg) {
//                 Toast.loading(loadingMsg);
//             } else {
//                 Toast.loading("测试请求中...");
//             }
//         }
//         return axios.get(url, { params: data });
//     }
// };
